package com.quick.android.utils;

import android.annotation.SuppressLint;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间格式转换工具
 **/
@SuppressLint("SimpleDateFormat")
public class TimeUtils {
    /**
     * yyyy：年
     * MM： 月<br/>
     * dd： 日<br/>
     * HH： 时<br/>
     * mm： 分<br/>
     * ss： 秒<br/>
     */

    /**
     * 获取当天日期，格式为yyyy-MM-dd
     */
    public static String getCurrentDay() {
        return getCurrentDay("yyyy-MM-dd");
    }

    /**
     * 获取当天日期，格式自定义
     *
     * @param format 返回日期的格式
     * @return
     */
    public static String getCurrentDay(String format) {
        Long time = new Long(new Date().getTime());
        return dateFormat(time, format);
    }


    /**
     * 获取当前时间，格式为yyyy/MM/dd HH:mm
     */
    public static String getCurrentTime() {
        return getCurrentTime("yyyy/MM/dd HH:mm");
    }

    /**
     * 获取当前时间，格式自定义
     *
     * @param format 返回时间的格式
     * @return
     */
    public static String getCurrentTime(String format) {
        Long time = new Long(new Date().getTime());
        return dateFormat(time, format);
    }

    /**
     * 时间格式转换，將格式为currentFormat转为convertFormat
     */
    public static String getCorrectTime(String strTime, String currentFormat, String convertFormat) {
        long time = parseTimeToLong(strTime, currentFormat);
        return dateFormat(time, convertFormat);
    }

    /**
     * 计算日期差，按天数算
     */
    public static int countDays(long oldTime) {
        long time = new Date().getTime();
        long objectTime = time - oldTime;
        int days = (int) (objectTime / (3600 * 1000 * 24));
        return days;
    }

    /**
     * 将时间戳转换为format格式的时间
     */
    public static String dateFormat(Long time, String format) {
        SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat(format);
        String d = mSimpleDateFormat.format(time);
        return d;
    }

    /**
     * 将时间转换为时间戳
     *
     * @param time
     * @param format
     * @return
     */
    public static long parseTimeToLong(String time, String format) {
        SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat(format);
        long parseTime = 0;
        try {
            parseTime = mSimpleDateFormat.parse(time).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return parseTime;
    }

}
